/*******************************************************************************
 * ColorBox
 * jQuery 1.7 以上才能在IE下正常工作
 *******************************************************************************/

var opt_default = {
	msg				: '您还未给出提示信息呢！！！'
	,title			: '系统信息'
	,url			: ''
	,top			: '200px'			// 位置
	//,width		: false
	//,height		: false
	//,maxWidth		: '800px'
	,opacity		: 0.25				// 遮罩层透明度
	,overlayClose	: false				// 点击遮罩层是否关闭
	,transition		: 'elastic'			// 动画效果：elastic、fade
	,speed			: 100				// 动画速度
	,fixed			: true				// 固定位置
	,preloading		: false

	,onLoad			: false				// 加载的时候执行
	,onComplete		: false				// 加载完成时执行
	,onCleanup		: false				// 关闭前的时候执行
	,onClosed		: false				// 关闭后的时候执行
	//
	,timeout		: 0
}

/**
 * 显示信息
 * @param  {string} msg 字符串
 * @param  {object} opts 参数
 * @return {null} none
 */
function showmsg(msg, opts){
	opts = $.extend({}, opt_default, opts);
	opts.html = '<div class="colorbox_msg">'+msg+'</div>';
	if(!opts.onClosed){
		if(opts.url != ''){
			opts.onClosed = function(){
				window.location.href = opts.url;
			}
		}
	}

	$.colorbox(opts, function(){
		// callback 无条件执行
	});

	if(opts.timeout > 0){
		setTimeout(function(){
			$.colorbox.close();	// 指定时间自动关闭
		}, opts.timeout);
	}
}

function showmsg_tip(msg, opts){
	msg = msg || '您还未给出提示信息呢！！！'
	var opt_def = {
		'title'		: '系统提示',
		'type'		: 'info'	// loading, info, right, error, warning
	}
	opts = $.extend({}, opt_def, opts);
	msg = '<dl><dt class="'+opts.type+'" /></dt><dd>'+msg+'</dd><div class="clear"></div></dl>';
	showmsg(msg, opts);
}
function showmsg_loading(msg, opts){
	var opt_def = {
		'title'		: '正在处理',
		'type'		: 'loading'	// loading, info, right, error, warning
	}
	opts = $.extend({}, opt_def, opts);
	showmsg_tip(msg, opts);
}
function showmsg_info(msg, opts){
	var opt_def = {
		'title'		: '系统信息',
		'type'		: 'info'	// loading, info, right, error, warning
	}
	opts = $.extend({}, opt_def, opts);
	showmsg_tip(msg, opts);
}
function showmsg_right(msg,opts){
	var opt_def = {
		'title'		: '处理成功',
		'type'		: 'right'	// loading, info, right, error, warning
	}
	opts = $.extend({}, opt_def, opts);
	showmsg_tip(msg, opts);
}
function showmsg_error(msg, opts){
	var opt_def = {
		'title'		: '处理失败',
		'type'		: 'error'	// loading, info, right, error, warning
	}
	opts = $.extend({}, opt_def, opts);
	showmsg_tip(msg, opts);
}
function showmsg_warning(msg, opts){
	var opt_def = {
		'title'		: '系统警告',
		'type'		: 'warning'	// loading, info, right, error, warning
	}
	opts = $.extend({}, opt_def, opts);
	showmsg_tip(msg, opts);
}

/**
 * 通用回调函数
 * @param  {object} params JSON
 * @return {null} none
 */
function callback_common(params) {
	var defaults = {
		result	: 'succ',
		//title	: 'OK',
		msg		: '处理成功',
		url		: '',	// 跳回上一页
		ttl		: 2000
	};
	params = $.extend({}, defaults, params);
	if (params.result == 'succ'){
		if (params.url == 'refresh'){
			params.url = window.location.href;
		}else{
			/*if(params.url == ''){
				params.url = referrer;	// 跳回上一页，一般是列表页，感觉不太好
			}*/
		}
		params['timeout'] = params.ttl;	// 自动关闭时间
		showmsg_right(params.msg, params);
		/*setTimeout(function(){
			$.colorbox.close();	// 自动关闭信息框，暂时的机制是成功才自动关闭
		}, params.ttl);*/
	}else{
		if (params.result == 'warning'){
			showmsg_warning(params.msg, params);
		}else{
			showmsg_error(params.msg, params);
		}
	}
	return false;
}


/*******************************************************************************
 * jGrowl 一个不错的通知
 *******************************************************************************/

jQuery.jGrowl.defaults.closerTemplate = '';	// 不需要关闭全部
function pop_message(msg, ttl){
	ttl = ttl || 600000;
	$.jGrowl(msg, {
		theme			: 'message'			// 样式
		,life			: ttl				// 10分钟后自动关闭
		,sticky			: true				// 由用户手动关闭，上面的“life”参数将失效
	});
}
function pop_error(msg){
	$.jGrowl(msg, {
		theme			: 'error'			// 样式
		,sticky			: true				// 由用户手动关闭，上面的“life”参数将失效
	});
}


/*******************************************************************************
 * Impromptu - 一个强悍的提示框，准备用此替代ColorBox
 *******************************************************************************/

var default_options = {
	/*buttons	: {
		Ok		: true 
		,Cancel	: false
	}*/
	buttons		: [
		{title: '确定', value: true},
		{title: '取消', value: false}
	]
	,opacity	: 0.25
	,focus		: 0				// 默认选择第n个按钮，从0开始
	,prefix		: 'impromptu'	// impromptu, brownJqi, cleanblue, extblue, jqismooth
	,top		: '35%'
	,show		: 'slideDown'	// 展现效果 promptDropIn, fadeIn, slideDown
	,useiframe	: true
	/*,callback 	: function(e, v, m, f){	// 关闭的时候执行
		// v	按下的按钮的值
		// m	按下的按钮的对象
		// f	子对象的值
		
		console.log('v = '+v);
		console.log('m = ');console.dir(m);
		console.log('f = ');console.dir(f);
	}*/
	,submit		: function(e, v, m, f){		// 如果返回false，则不会关闭
		// 参数，与上同
		//return v;
	}

	,type		: 'info'
};

var tour_btn_next = [
	{title:'退出', value:0},
	{title:'下一步', value:1},
	{title:'最后一步', value:2}
];
var tour_btn_back = [
	{title:'退出', value:0},
	{title:'第一步', value:-2},
	{title:'上一步', value:-1}
];
var tour_btn_trip = [
	{title:'退出', value:0},
	{title:'上一步', value:-1},
	{title:'下一步', value:1},
];

/*var states = {
	state0	: {
		html		: 'step 1 ...',
		buttons		: tour_btn_next,
		focus		: 1,
		position	: { container: '#step0', x: 10, y: -10, width: 300, arrow: 'rt' },
		submit		: tour_trip_func
	}
	,state1	: {
		html		: 'step 2 ...',
		buttons		: tour_btn_trip,
		focus		: 2,
		position	: { container: '#step1', x: 10, y: -10, width: 300, arrow: 'rt' },
		submit		: tour_trip_func
	}
	,state2	: {
		html		: 'step 3 ...',
		buttons		: tour_btn_back,
		focus		: 2,
		position	: { container: '#step2', x: -10, y: -10, width: 300, arrow: 'rt' },
		submit		: tour_trip_func
	}
};*/

var tour_trip_func = function(e, v, m, f){
	switch(v){
		case 0:
			$.prompt.close();	// 貌似不用此句也可以，多余？？？
			return true;
			break;
		case -2:
			$.prompt.goToState('state0');
			break;
		case -1:
			$.prompt.prevState();
			break;
		case 1:
			$.prompt.nextState();
			break;
		case 2:
			$.prompt.goToState('state2');
			break;
	}
	return false;
}

function myconfirm(html, options){
	opts = $.extend({}, default_options, options);
	html = '<div class="myconfirm"><dl><dt class="'+opts.type+'" /></dt><dd>'+html+'</dd><div class="clear"></div></dl></div>';
	$.prompt(html, opts);
}

/**
 * 演示场次切换
 */
function mystates(states, options){
	options = $.extend({}, default_options, options);
	$.prompt(states, options);
}